/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package educar.abmFacultad;

import educar.models.Facultad;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.JOptionPane;

/**
 * En esta clase se encuentran los metodos necesarios para modificar una facultad 
 * ya existente en el sistema.
 * @author gaston
 */
public class ModificarFacultadController implements ActionListener{
    
    //Atributo que permite abrir una ventana con los datos de la facultad
    private AgregarFacultadView agregarFacultadView;
    
    //Arreglo usado para almacenar los datos de una facultad codigo y nombre de la misma
    private String vector[] = new String[2];
    
    //Este atributo se utiliza como parametro del constructor para que cuando se cierren la ventana actual 
    //volvemos a la ventana anterio(queda visible la ventana que estaba oculta).
    private FacultadController facultadController;
    
    //Atributo auxiliar usado para almacenar el numero de la fila donde se hizo
    //doble clic para modificar el docente
    private int filaFacultad;
    
    //Atributo auxiliar para almacenar el nombre de la facultad
    private String facultadNombre;
    
    
    //Recibe como parametro el controlador que lo invoco
    /**
     * <hr>
     * ModificarFacultadController():
     * <hr>
     * @param facultadControl 
     */
    public ModificarFacultadController(FacultadController facultad){
        facultadController = facultad;
        agregarFacultadView = new AgregarFacultadView();
        agregarFacultadView.setActionListener(this); 
        
    }
    
    
    /**
     * <hr>
     * setView():
     * <hr>
     * @param arreglo
     * @param fila 
     */
    public void setView(Vector arreglo, int fila){
        this.filaFacultad = fila;
        facultadNombre = (String) arreglo.elementAt(1);
        agregarFacultadView.setCodigoFacultad((String) arreglo.elementAt(1));
        agregarFacultadView.setNombreFacultad((String) arreglo.elementAt(2));
    }
    
    /**
     * 
     * @param e 
     */
    public void actionPerformed(ActionEvent e){
        //Conocer la procedencia del evento del boton
        Object source = e.getSource();
        if(source == agregarFacultadView.getJbCancelar()){//Cancelar
            agregarFacultadView.dispose();
        }else{//Selecciono Agregar
            if(source == agregarFacultadView.getJbAgregar()){
                if(!((agregarFacultadView.getCodigoFacultad().length() == 0) || (agregarFacultadView.getNombreFacultad().length() == 0) )){
                    vector[0] = agregarFacultadView.getCodigoFacultad(); 
                    vector[1] = agregarFacultadView.getNombreFacultad();
                    Facultad facultad = new Facultad(vector);
                    if (!((vector[0].length() == 0) || (vector[1].length() == 0))) {
                    
                    if (facultad.setFacultadPorCodigo(facultadNombre)) {                             
                            facultadController.actualizarFila(vector, filaFacultad);
                            agregarFacultadView.dispose();
                } 
                   else {
                    JOptionPane.showMessageDialog(null,"Ya existe un registro con el nombre de la facultad "+ agregarFacultadView.getNombreFacultad()+".","proyecto 2012",JOptionPane.WARNING_MESSAGE);
                }
            } else {
                JOptionPane.showMessageDialog(null,"Existe al menos un campo sin completar.\n\nRevise los campos ingresados","proyecto 2012",JOptionPane.WARNING_MESSAGE);
            }
                }
            }
        }
    }
    
}//Fin de la clase ModificarFacultadController